package haggisworld;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

/**
 *
 * @author Andreas Miksik
 */
public class SpielServer {

    private static final int PORT = 50005;
    private static int anzSpieler = 0;
    boolean zuVieleSpieler = false;
    Spiel spiel;

    public static int getAnzSpieler() {
        return anzSpieler;
    }

    /**
     * Getter für Instanz spiel
     *
     * @return spiel der Klasse Spiel
     */
    public Spiel getSpiel() {
        return this.spiel;
    }

    /**
     * Konstruktor der Klasse SpielServer. Erstellt ein neues Objekt der Klasse
     * SpielServer.
     */
    public SpielServer() {
        spiel = new Spiel();
    }

    public static void main(String[] args) throws IOException, ClassNotFoundException {
        new SpielServer().runServer();
    }

    /**
     * Wartet auf ServerSocket-Verbindungen.
     *
     * @throws IOException
     * @throws ClassNotFoundException
     */
    public void runServer() throws IOException, ClassNotFoundException {
        ServerSocket serverSocket = new ServerSocket(PORT);

        System.out.println("Server gestartet, warte auf Verbindungen...");
        while (!zuVieleSpieler) {
            Socket socket = serverSocket.accept();
            ++anzSpieler;
            if (anzSpieler == 2) {
                zuVieleSpieler = true;
            }
            SpielServerThread t1 = new SpielServerThread(socket, anzSpieler, spiel.getStartObjekt(), this.getSpiel());
            t1.start();
        }
    }

}
